using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using BreukenWebsite.Models;

namespace BreukenWebsite.Controllers
{
    public class OpdrachtenMakenController : Controller
    {

        BreukenRepository breukenRepository = new BreukenRepository();
        //
        // GET: /OpdrachtenMaken/

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Overzicht(string naam)
        {
            var leerlingen = breukenRepository.FindAllLeerlingen();
            int leerlingId = 0;
            foreach (var leerling in leerlingen)
            {
                if (leerling.naam.Equals(naam))
                {
                    leerlingId = leerling.leerlingID;
                }
            }
            var opdrachten = breukenRepository.OpdrachtenByLeerling(leerlingId);
            return View("Overzicht", opdrachten);
        }

        public ActionResult MaakOpdracht(int id)
        {

            var opdrachtdetails = breukenRepository.FindAllOpdrachtDetailsByOpdracht(id);
            return View("MaakOpdracht", opdrachtdetails);

        }

        [Authorize(Roles="Leerling")]
        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult VoerOpdrachtUit(string naam, FormCollection collection)
        {
            string[] keys = collection.AllKeys;

            var leerlingen = breukenRepository.FindAllLeerlingen();
            int leerlingId = 0;
            foreach (var leerling in leerlingen)
            {
                if (leerling.naam.Equals(naam))
                {
                    leerlingId = leerling.leerlingID;
                }
            }

            foreach (string key in keys)
            {
                LeerlingOpdrachtDetail lod = new LeerlingOpdrachtDetail();
                lod.leerlingID = leerlingId;
                lod.opdrachtDetailID = int.Parse(key);
                OpdrachtDetail lod2 = breukenRepository.GetOpdrachtDetail(lod.opdrachtDetailID);
                lod.antwoordTekst = collection[key];
                if (lod.antwoordTekst.Equals(lod2.oplossingTekst))lod.fout = 0;
                else lod.fout = 1;
                breukenRepository.AddLeerlingOpdrachtDetail(lod);
            }
            breukenRepository.Save();


            return Overzicht(naam);
        }

    }
}
